package com.wang.springframework.core.convert.converter;

/**
 * @author wangjianhua
 * @Description 类型转换器注册接口
 * @date 2021/9/7/007 11:02
 **/
public interface ConverterRegistry {

    /**
     * 在此注册接口添加一个普通的转换器
     * 可转换源/目标类型对源自转换器的参数化类型。
     * @param converter 转换器
     * @throws IllegalArgumentException 无法解析参数化的类型
     */
    void addConverter(Converter<?,?> converter);

    /**
     * 在此注册接口添加一个通用的转换器
     * @param converter 转换器
     */
    void addConverter(GenericConverter converter);

    /**
     * 将范围转换器工厂添加到此注册器
     * @param converterFactory 转换器工厂
     */
    void addConverterFactory(ConverterFactory<?,?> converterFactory);
}
